跳到主要内容

-- env 文件的使用

Create by fall on —— Recently revised in 11 Oct 2023

注:Node v20.6.0 版本开始,版本内置了对 .env 文件的支持,也许不再需要 dotenv 了。

常见文件配置

.env 文件表示配置文件

建议所有的变量都大写并且通过 _ 进行连接

# 这里写注释
VUE_APP_PINK_WEB="http://192.168.56.20:8087"
VUE_APP_PINK_PIC="192.168.80.201:8087"

配置出来的 value 只支持 string 类型。并且,如果想使用 $ 符号作为文本,须通过 \$ 进行转义

VUE_APP_ID=true

配置文件命名

除了 .env 文件之外,还可以使用以下命令

  • .env.local 只会在本地启用,一般会在 .gitignore 中进行配置,被忽略掉
  • .env.development 只会在开发环境下使用,npm run dev 一般默认使用该
  • .env.production 只会在生产环境下使用,npm run dev 一般默认使用该
  • .env.[mode] 其它自定义的模式
  • .env.[mode].local 只会在本地启用的自定义的模式

优先级:.env.[mode].local .env.[mode] > .env.local > .env

获取配置文件

node 环境下,可以通过 process.env 获取到对应的属性 vite 中,可以通过 import.global.env 调用获取(在构建时会被替换为对应的静态字符串),且变量命名必须以 VITE_ 开头

不建议将敏感信息放入到生产环境变量中,会作为字符串替换掉属性

指定对应的文件

大小写是否敏感?不敏感

示例:

如果同一个目录下出现以下内容:

VUE_APP_callBackURL="加班?"
VUE_APP_CALLBACKURL="嘛玩意"

如果两个字段同时在一个文件中出现,将只解析一个(我的环境下测试后,只提供了前者)

命令

node --env-file .env env1.js

21.7.0 中也添加了

process.loadEnvFile();